package objetosNegocio;

import java.util.ArrayList;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import entidades.Usuario;


public class ObjetoNegocioUsuarios 
{
	private EntityManager manager;
	
	public ObjetoNegocioUsuarios(EntityManager manager)
	{
		this.manager = manager;
	}
	
	public Usuario ingresarUsuario(Usuario usuario)
	{
		if(buscarUsuario(usuario)==null)
		{
			manager.persist(usuario);		
			return this.buscarUsuario(usuario);
		}
		
		return null;
	}
	public boolean modificarUsuario(Usuario usuario)
	{
		Usuario usuarioAuxiliar = usuario;
		usuario = this.buscarUsuario(usuario);
		
		if(usuario != null)
		{
			usuario.setNombre(usuarioAuxiliar.getNombre());
			usuario.setApellidos(usuarioAuxiliar.getApellidos());
			usuario.setCorreoElectronico(usuarioAuxiliar.getCorreoElectronico());
			usuario.setPassword(usuarioAuxiliar.getPassword());
			manager.merge(usuario);
			
			return true;
		}
		
		return false;
	}
	@SuppressWarnings("unchecked")
	public Usuario buscarUsuario(Usuario usuario)
	{
		ArrayList<Usuario> usuarios;
		
		Query query = manager.createQuery("select u from Usuario u where u.login =:login");
		query.setParameter("login", usuario.getLogin());
		
		usuarios = ((ArrayList<Usuario>)query.getResultList());
		
		if(usuarios.size() > 0)
		{
			return usuarios.get(0);
		}
		
		return null;
	}
}
